// 为对象类型封装一个forEach方法
Object.prototype.constructor.forEach = function (obj, callback, type='0'){
    // 判断返回的是否是一个函数
    if (typeof (callback) === 'function'){
        let i = 0;
        let target = {};
        if (type==='0'){
            for (let key in obj){
                target[i] = callback(obj[key], i, key);
                i++;
            }
        }else if(type==='1'){
            for (let key in obj){
                target[obj[key].userId] = callback(obj[key], i, key);
                i++;
            }
        }
        return target;
    }
    // 如果callback不是函数，那么抛出错误。
    throw new Error(callback + ' is not a function! You can use it like this: Object.forEach(obj, (item, index, key)=>{...}) ');
}

// 类似ForEach，不过返回的是一个数组
Object.prototype.constructor.forEachToArr = function (obj, callback){
    // 判断返回的是否是一个函数
    if (typeof (callback) === 'function'){
        let i = 0;
        let arr = [];
        for (let key in obj){
            let result = callback(obj[key], i, key);
            if (result){
                arr.push(result);
            }
            i++;
        }
        return arr;
    }
    // 如果callback不是函数，那么抛出错误。
    throw new Error(callback + ' is not a function! You can use it like this: Object.forEachToArr(obj, (item, index, key)=>{...}) ');
}